﻿using Abp.Domain.Entities.Auditing;
using JetBrains.Annotations;
using System;
using System.Collections.Generic;
using System.Text;

namespace Camc.Quality.StoreManagement.StoreInfo
{
    public class StoreStockContentDto : FullAuditedEntity<Guid>
    {
        #region 入库信息  
        /// <summary>
        /// 所属工步id
        /// </summary>
        public Guid? WorkStepId { get; set; }
        /// <summary>
        /// 库存主表ID
        /// </summary>
        public Guid StoreStockId { get; set; }
        /// <summary>
        /// 合格证入库Id
        /// </summary>
        public Guid? StorePutContentId { get; set; }
        /// <summary>
        /// 入库单号
        /// </summary>
        public string StorePutNo { get; set; }
        /// <summary>
        /// 仓库ID
        /// </summary>
        public Guid? StoreId { get; set; }
        /// <summary>
        /// 仓库名称
        /// </summary>
        public string StroeName { get; set; }
        /// <summary>
        /// 储位
        /// </summary>
        public string BinLocation { get; set; }
        /// <summary>
        /// 物料细料ID
        /// </summary>
        public Guid MaterialsContentId { get; set; }
        /// <summary>
        /// 放行单号
        /// </summary>
        public string ReleaseOrder { get; set; }
        /// <summary>
        /// 备注
        /// </summary>
        public string Remark { get; set; }
        /// <summary>
        /// 物料入库状态 0待入库、1已入库
        /// </summary>
        public int StoreStateContent { get; set; } = 0;
        /// <summary>
        /// 入库人Id
        /// </summary>
        public long? StorePutPeopleId { get; set; }
        /// <summary>
        /// 入库人名称
        /// </summary>
        public string StorePutPeople { get; set; }
        /// <summary>
        /// 入库时间
        /// </summary>
        [CanBeNull]
        public DateTime? StorePutTime { get; set; }
        /// <summary>
        /// 确认人Id
        /// </summary>
        public long? IdentifyingPeopleId { get; set; }
        /// <summary>
        /// 确认人名称
        /// </summary>
        public string IdentifyingPeople { get; set; }
        /// <summary>
        /// 确认时间
        /// </summary>
        public DateTime? IdentifyingTime { get; set; }
        #endregion
        #region 新加
        /// <summary>
        /// 是否预配套
        /// </summary>
        public int IsPreSuit { get; set; }
        /// <summary>
        /// 预配套ID
        /// </summary>
        [CanBeNull]
        public Guid? BomAnalysecontentId { get; set; }
        /// <summary>
        /// 是否配套
        /// </summary>
        public int IsSuit { get; set; }
        /// <summary>
        /// 配套状态
        /// </summary>
        public string SuitStuts { get; set; }
        /// <summary>
        /// 配套ID
        /// </summary>
        [CanBeNull]
        public Guid? BomSuitContentId { get; set; }
        /// <summary>
        /// 预配套人
        /// </summary>
        public string PreSuiteName { get; set; }
        /// <summary>
        /// 预配套时间
        /// </summary>
        [CanBeNull]
        public DateTime? PreSuiteTime { get; set; }
        /// <summary>
        /// 配套人
        /// </summary>
        public string CompletePeople { get; set; }
        /// <summary>
        /// 配套时间
        /// </summary>
        [CanBeNull]
        public DateTime? CompleteTime { get; set; }
        #endregion

        #region 合格证信息 
        /// <summary>
        /// 质控卡号
        /// </summary>
        public string QCCardNo { get; set; }
        /// <summary>
        /// 合格证号
        /// </summary>
        public string QualifiedNumber { get; set; }
        /// <summary>
        /// 产品图号
        /// </summary>
        public string ProductDrawingNo { get; set; }
        /// <summary>
        /// 产品名称
        /// </summary>
        public string ProductName { get; set; }
        /// <summary>
        /// 批次
        /// </summary>
        public string Batch { get; set; }
        /// <summary>
        /// 合格证号任务
        /// </summary>
        public string QualifiedTaskNumber { get; set; }
        /// <summary>
        /// 装配任务号
        /// </summary>
        public string AssemblyTaskNumber { get; set; }
        /// <summary>
        /// 数量
        /// </summary>
        public int Quantity { get; set; } = 1;
        /// <summary>
        /// 产品编号(件号)
        /// </summary>
        public string ProductNumber { get; set; }
        /// <summary>
        /// 产品编号生成方式 0：自动带出，1：手动输入， 3：自动生成
        /// </summary>
        public int ProductNumberType { get; set; }
        /// <summary>
        /// 特殊记载
        /// </summary>
        public string SpecialRecords { get; set; }
        /// <summary>
        /// 金属材料牌号状态
        /// </summary>
        public string MaterialBrandStatus { get; set; }
        /// <summary>
        /// 炉(批)号
        /// </summary>
        public string HeatNumber { get; set; }
        /// <summary>
        /// 化(试)验号
        /// </summary>
        public string Mthd { get; set; }
        /// <summary>
        /// 非金属材料牌号
        /// </summary>
        public string NonmetallicMaterialsBrand { get; set; }
        /// <summary>
        /// 批次号
        /// </summary>
        public string BatchNo { get; set; }
        /// <summary>
        /// 压制日期
        /// </summary>
        public string SuppressionDate { get; set; }
        /// <summary>
        /// 处理技术问题文件编号
        /// </summary>
        public string DocumentNo { get; set; }
        /// <summary>
        /// 制造车间
        /// </summary>
        public string ManufacturingWorkshop { get; set; }
        /// <summary>
        /// 生产工人
        /// </summary>
        public string ProductionWorkers { get; set; }
        /// <summary>
        /// 工(组)长
        /// </summary>
        public string Foreman { get; set; }
        /// <summary>
        /// 检验员
        /// </summary>
        public string Inspector { get; set; }
        /// <summary>
        /// 日期
        /// </summary>
        public string Date { get; set; }
        #endregion

        #region 基础信息 
        /// <summary>
        /// 型号(产品代号)
        /// </summary>
        public string ProductCode { get; set; }
        /// <summary>
        /// 型号(产品代号)
        /// </summary>
        public string ProductCodeId { get; set; }
        /// <summary>
        /// 发次
        /// </summary>
        public string SendTime { get; set; }
        /// <summary>
        /// 发次
        /// </summary>
        public string SendTimeId { get; set; }
        /// <summary>
        /// 物料细分类别
        /// </summary>
        public string MaterialCategory { get; set; }
        /// <summary>
        /// 物料类别
        /// </summary>
        public string MaterialsNode { get; set; }
        /// <summary>
        /// 规格型号
        /// </summary>
        public string Module { get; set; }
        /// <summary>
        /// 有效期止
        /// </summary>
        public string ExpirationDate { get; set; }
        /// <summary>
        /// 单位Id
        /// </summary>
        public Guid UnitId { get; set; }
        /// <summary>
        /// 单位
        /// </summary>
        public string Unit { get; set; }
        /// <summary>
        ///转批次
        /// </summary>
        public string TurnBatch { get; set; }
        /// <summary>
        /// 物料属性
        /// </summary>
        public int MaterialsProperty { get; set; }
        /// <summary>
        /// 物料属性名称
        /// </summary>
        public string MaterialsPropertyName { get; set; }
        /// <summary>
        /// 入库状态
        /// </summary>
        public int InputState { get; set; }
        /// <summary>
        /// 入库方式
        /// </summary>
        public int WarehousMethod { get; set; }
        /// <summary>
        /// 装入件明细Id
        /// </summary>
        [CanBeNull]
        public Guid? LoadDetailsId { get; set; }

        /// <summary>
        /// 指定型号
        /// </summary>
        public string DesignatedModule { get; set; }
        /// <summary>
        /// 指定发次
        /// </summary>
        public string DesignatedSendTime { get; set; }
        /// <summary>
        /// 储位ID
        /// </summary>
        public string BinLocationId { get; set; }
        /// <summary>
        /// 指定芯级名称
        /// </summary>
        public string DesignatedXJ { get; set; }
        /// <summary>
        /// 指定芯级图号
        /// </summary>
        public string DesignatedXJCode { get; set; }
        #endregion

        #region 20211124 新增
        /// <summary>
        /// 年代号
        /// </summary>
        public string Years { get; set; }
        #endregion
        #region 20211214 新增
        ///// <summary>
        ///// 出库单号
        ///// </summary>
        //public Guid? DeliveryDocumentId { get; set; }
        #endregion
    }
}
